package com.irs.irsforum.service;

import com.alibaba.rocketmq.shade.com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.service.IService;
import com.irs.irsforum.entity.IndexPost;
import com.irs.irsforum.entity.Post;
import javafx.geometry.Pos;

import java.sql.SQLException;
import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author yihuili
 * @since 2020-01-18
 */

public interface IPostService extends IService<Post> {

    /**
     * 分页展示帖子，每页15条
     * @param currentPage 当前页
     * @param pageSize 每页大小，默认15
     * @param userId 用户ID
     * @return
     */
    List<IndexPost> showPostByPage(Integer currentPage, Integer pageSize, Long userId);

    /**
     * 所有帖子数以及页数
     * @param pageSize 每页大小，默认15
     * @return
     */
    JSONObject getTotalPostNum(Integer pageSize);

    /**
     * 通过postId获得帖子
     * @param postId
     * @param userId
     * @return
     */
    Post showPost(Long postId, Long userId);

    /**
     * 添加帖子
     * @param post 帖子
     * @return
     */
    Integer writePost(Post post) throws SQLException;

    /**
     * "我"发的贴子
     * @param userId
     * @return
     */
    List<IndexPost> getPostByUserId(Long userId);

    /**
     * "我"收藏过的帖子
     * @param userId
     * @return
     */
    List<IndexPost> getFavoriteByUserId(Long userId);

    /**
     * 修改帖子的评论数
     * @param postId
     * @param number 增加帖子评论数：1  减少：-1
     * @return
     */
    Integer updateCommentNum(Long postId, Long number);

    /**
     * 修改帖子的收藏
     * @param postId
     * @param number 增加帖子的收藏：1  减少：-1
     * @return
     */
    Integer updateFavoriteNum(Long postId, Long number);

    /**
     * 删除帖子
     * @param postId
     * @param userId
     * @return
     */
    Integer delPost(Long postId, Long userId);


}
